/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fait.ferm.engine;

import fait.ferm.persists.Ferm;
import fait.ferm.persists.Users;
import java.util.ArrayList;

/**
 * Универсальный объект, возвращаемый методами движка.
 * Содержит поле <code>obj</code> для хранения объекта, возвращаемого движком
 * и поле <code>error</code> типа ErrorEngine для возвращения ошибки.
 * Если ошибки нет в этом поле возвращается объект  {@link fait.ferm.engine.GlobalEngine#E_NO_ERROR GlobalEngine.E_NO_ERROR}
 * @author alex
 */
public class ResultEngine {
	/**
	 *
	 */
	public Object obj;
	/**
	 *
	 */
	public ErrorEngine error;
	/**
	 * 
	 * @param o объект, возвращаемый движком
	 * @param er объект типа ErrorEngine для возвращения ошибки.
	 */
	public ResultEngine(Object o, ErrorEngine er){
		obj=o;
		error = er;
	}
	
	public Users getUsers() throws Exception{
		if(error.isOk()){ 
			return (Users)obj;
		}
		else {
			throw new Exception(error.getMessage());
		}
	}
	public Ferm getFerm() throws Exception{
		if(error.isOk()){
			return (Ferm)obj;
		}
		else {
			throw new Exception(error.getMessage());
		}
	}
	public ArrayList<TreeArrItem> getArrayListTree() throws Exception{
		if(error.isOk()){
			return (ArrayList<TreeArrItem>)obj;
		}
		else {
			throw new Exception(error.getMessage());
		}
	}
	
}
